#include <iostream>
#include <string>

using namespace std;

/*
常成员函数
    在函数的后面 增加 cosnt
    
void show_Time() const
    功能: 加了const 的函数 内部不能修改成员属性的值 除非 mutable
    作用： 保护类 内部的变量 不被修改

    指针常量
    this = class * const this

    常量指针常量
    cosnt class * const this

    const 修饰的是左边的类型 除非const 为第一个

    // 修饰右边  int ==  不能修改 指向变量的值
    const int * prt

    // 修饰左边  int ==  不能修改 指向变量的值
    int const * ptr

    // 修饰左边  * ==  不能修改 指向
    int * const ptr

    常量指针    
    指针常量   

*/
class Time
{
private:
    mutable int hour;
    int min;
    int sec;

public:
    Time()
        : hour(0), min(0), sec(0)   {}
    Time(int hour, int min, int sec)
        : hour(hour), min(min), sec(sec)    {}

    ~Time() {}

public:
    // 显示时间
    void show_Time() const
    {
        cout << "我是常成员函数" << endl;
        this->hour = 10;
        cout << this->hour << ":" << this->min << ":" << this->sec << endl;
    }
    void show_Time()
    {
        cout << "我是非常成员函数" << endl;
        this->hour = 10;
        cout << this->hour << ":" << this->min << ":" << this->sec << endl;
    }

};


int main(int argc, char const *argv[])
{
    const Time T;
    T.show_Time(); 
    
    return 0;
}